package xuan.mall.system.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import xuan.mall.common.model.BaseEntity;

import java.io.Serializable;

/**
 * <p>
 * 资源表
 * </p>
 *
 * @author rongxuanzhou
 * @since 2025-06-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_resource")
public class Resource extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资源ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 父资源ID（0表示根节点）
     */
    @TableField("parent_id")
    private Long parentId;

    /**
     * 资源名称
     */
    @TableField("resource_name")
    private String resourceName;

    /**
     * 资源路径
     */
    @TableField("resource_path")
    private String resourcePath;

    /**
     * 资源图标
     */
    @TableField("resource_icon")
    private String resourceIcon;

    /**
     * 资源类型（0-目录，1-菜单，2-按钮）
     */
    @TableField("resource_type")
    private Boolean resourceType;

    /**
     * 权限标识
     */
    @TableField("permission")
    private String permission;

    /**
     * 排序号
     */
    @TableField("order_num")
    private Integer orderNum;

    /**
     * 状态（0-启用，1-禁用）
     */
    @TableField("status")
    private Boolean status;

    /**
     * 描述
     */
    @TableField("description")
    private String description;
}
